function isElectron() {
  // Renderer process
  if (
    typeof window !== 'undefined' &&
    typeof window.process === 'object' &&
    window.process.type === 'renderer'
  ) {
    return true;
  }

  // Main process
  if (
    typeof process !== 'undefined' &&
    typeof process.versions === 'object' &&
    !!process.versions.electron
  ) {
    return true;
  }

  // Detect the user agent when the `nodeIntegration` option is set to false
  return (
    typeof navigator === 'object' &&
    typeof navigator.userAgent === 'string' &&
    navigator.userAgent.indexOf('Electron') >= 0
  );
}

const isInElectron = isElectron();

const isOsx = () => isInElectron && process.platform && process.platform === 'darwin';

const isWin = () => isInElectron && process.platform && process.platform === 'win32';

const isLinux = () => isInElectron && process.platform && process.platform === 'linux';

module.exports = {
  isInElectron,
  isOsx,
  isWin,
  isLinux,
};
